package pe.gob.sunarp.entidad;

import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Set;


/**
 * The persistent class for the SOLICITUD database table.
 * 
 */
@Entity
@Table(name="SOLICITUD")
public class Solicitud implements Serializable {
	private static final long serialVersionUID = 1L;
	private long solicitudId;
	private String estado;
	private BigDecimal gastoEnvio;
	private BigDecimal subtotal;
	private BigDecimal total;
	private Date tsCrea;
	private Date tsModi;
	private String usrCrea;
	private String usrModi;
	private Set<AudAtenSolicitud> audAtenSolicituds;
	private Set<ConsumoSolicitud> consumoSolicituds;
	private Set<Destinatario> destinatarios;
	private Set<ObjetoSolicitud> objetoSolicituds;
	private Set<PagoSolicitud> pagoSolicituds;
	private Set<SgmtSolicitud> sgmtSolicituds;
	private Set<Solicitante> solicitantes;
	private Cuenta cuenta;
	private Set<SolicitudXCarga> solicitudXCargas;

    public Solicitud() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="SOLICITUD_ID", unique=true, nullable=false)
	public long getSolicitudId() {
		return this.solicitudId;
	}

	public void setSolicitudId(long solicitudId) {
		this.solicitudId = solicitudId;
	}


	@Column(nullable=false, length=1)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	@Column(name="GASTO_ENVIO", nullable=false, precision=12, scale=2)
	public BigDecimal getGastoEnvio() {
		return this.gastoEnvio;
	}

	public void setGastoEnvio(BigDecimal gastoEnvio) {
		this.gastoEnvio = gastoEnvio;
	}


	@Column(nullable=false, precision=12, scale=2)
	public BigDecimal getSubtotal() {
		return this.subtotal;
	}

	public void setSubtotal(BigDecimal subtotal) {
		this.subtotal = subtotal;
	}


	@Column(nullable=false, precision=12, scale=2)
	public BigDecimal getTotal() {
		return this.total;
	}

	public void setTotal(BigDecimal total) {
		this.total = total;
	}


    @Temporal( TemporalType.DATE)
	@Column(name="TS_CREA", nullable=false)
	public Date getTsCrea() {
		return this.tsCrea;
	}

	public void setTsCrea(Date tsCrea) {
		this.tsCrea = tsCrea;
	}


    @Temporal( TemporalType.DATE)
	@Column(name="TS_MODI", nullable=false)
	public Date getTsModi() {
		return this.tsModi;
	}

	public void setTsModi(Date tsModi) {
		this.tsModi = tsModi;
	}


	@Column(name="USR_CREA", nullable=false, length=15)
	public String getUsrCrea() {
		return this.usrCrea;
	}

	public void setUsrCrea(String usrCrea) {
		this.usrCrea = usrCrea;
	}


	@Column(name="USR_MODI", nullable=false, length=15)
	public String getUsrModi() {
		return this.usrModi;
	}

	public void setUsrModi(String usrModi) {
		this.usrModi = usrModi;
	}


	//bi-directional many-to-one association to AudAtenSolicitud
	@OneToMany(mappedBy="solicitud")
	public Set<AudAtenSolicitud> getAudAtenSolicituds() {
		return this.audAtenSolicituds;
	}

	public void setAudAtenSolicituds(Set<AudAtenSolicitud> audAtenSolicituds) {
		this.audAtenSolicituds = audAtenSolicituds;
	}
	

	//bi-directional many-to-one association to ConsumoSolicitud
	@OneToMany(mappedBy="solicitud")
	public Set<ConsumoSolicitud> getConsumoSolicituds() {
		return this.consumoSolicituds;
	}

	public void setConsumoSolicituds(Set<ConsumoSolicitud> consumoSolicituds) {
		this.consumoSolicituds = consumoSolicituds;
	}
	

	//bi-directional many-to-one association to Destinatario
	@OneToMany(mappedBy="solicitud")
	public Set<Destinatario> getDestinatarios() {
		return this.destinatarios;
	}

	public void setDestinatarios(Set<Destinatario> destinatarios) {
		this.destinatarios = destinatarios;
	}
	

	//bi-directional many-to-one association to ObjetoSolicitud
	@OneToMany(mappedBy="solicitud")
	public Set<ObjetoSolicitud> getObjetoSolicituds() {
		return this.objetoSolicituds;
	}

	public void setObjetoSolicituds(Set<ObjetoSolicitud> objetoSolicituds) {
		this.objetoSolicituds = objetoSolicituds;
	}
	

	//bi-directional many-to-one association to PagoSolicitud
	@OneToMany(mappedBy="solicitud")
	public Set<PagoSolicitud> getPagoSolicituds() {
		return this.pagoSolicituds;
	}

	public void setPagoSolicituds(Set<PagoSolicitud> pagoSolicituds) {
		this.pagoSolicituds = pagoSolicituds;
	}
	

	//bi-directional many-to-one association to SgmtSolicitud
	@OneToMany(mappedBy="solicitud")
	public Set<SgmtSolicitud> getSgmtSolicituds() {
		return this.sgmtSolicituds;
	}

	public void setSgmtSolicituds(Set<SgmtSolicitud> sgmtSolicituds) {
		this.sgmtSolicituds = sgmtSolicituds;
	}
	

	//bi-directional many-to-one association to Solicitante
	@OneToMany(mappedBy="solicitud")
	public Set<Solicitante> getSolicitantes() {
		return this.solicitantes;
	}

	public void setSolicitantes(Set<Solicitante> solicitantes) {
		this.solicitantes = solicitantes;
	}
	

	//bi-directional many-to-one association to Cuenta
    @ManyToOne
	@JoinColumn(name="CUENTA_ID", nullable=false)
	public Cuenta getCuenta() {
		return this.cuenta;
	}

	public void setCuenta(Cuenta cuenta) {
		this.cuenta = cuenta;
	}
	

	//bi-directional many-to-one association to SolicitudXCarga
	@OneToMany(mappedBy="solicitud")
	public Set<SolicitudXCarga> getSolicitudXCargas() {
		return this.solicitudXCargas;
	}

	public void setSolicitudXCargas(Set<SolicitudXCarga> solicitudXCargas) {
		this.solicitudXCargas = solicitudXCargas;
	}
	
}